With the development of computer hardware techniques, there have been advancements made in various types of communication interfaces and storage media, and these techniques provide a hardware basis for achieving higher-speed memory access. With the development of computer software techniques and high-speed network techniques, resource sharing can be achieved across a plurality of computer devices. Increasing the efficiency of resource sharing has become a focus of attention.
Memory resources can be shared between a plurality of computer devices. There may be levels of memory on the basis of difference in access speed. For example, a computer device may have multiple levels of memory, such as cache, internal memory and hard disk. Since these memories have different hardware features and access speed, their sharing policies also differ.
Sharing of memory devices like hard disks has been achieved. However, due to limitations of memory's access speed and transmission efficiency between the memory and the central processing unit (CPU) of a computer device, efficiently sharing memory between a plurality of computer devices poses a challenge. Various embodiments of the present disclosure focuses on how to achieve memory sharing, and thus reference made to the memory throughout the context of the present disclosure refers to the memory in a computer device.
In an existing cluster environment typically each computer device (e.g. server) in the cluster has its own memory. Since the memory size is a critical factor affecting the computer device's data processing capability, to cause the computer device to have higher data processing capability, usually a large-capacity memory is configured in the computer device. While running a different application, the computer device often requires support of different amounts of memory, and therefore needs for memory vary considerably between the peak value and the valley value.
When the computer device executes a large application, shortage of memory resources might occur; when the computer device is lightly loaded, however, a number of memory resources may be free. The memory (e.g. Random Access Memory (RAM)) is still at a high price, so it is desired to share memory between a plurality of computer devices so as to increase the utilization efficiency of memory and further reduce the cost.